
#pragma once

#ifndef FRIDGE_CUSTOM_GL_EXT_HANDLING

#define FRIDGE_DECLARE_EXTERN_GL_EXTENSIONS
static void Platform_GLExt_BindFunctions() {};

#else

// If the platform needs to perform the bindings then implement them in this function

void Platform_GLExt_BindFunctions();

// Use FRIDGE_DECLARE_EXTERN_GL_EXTENSIONS to declare all the extern function pointers needed
// for working with GL extensions.

#define FRIDGE_DECLARE_EXTERN_GL_EXTENSIONS extern PFNGLGENRENDERBUFFERSPROC		glGenRenderbuffers; \
											extern PFNGLBINDRENDERBUFFERPROC		glBindRenderbuffer; \
											extern PFNGLRENDERBUFFERSTORAGEPROC		glRenderbufferStorage; \
											extern PFNGLGENFRAMEBUFFERSPROC			glGenFramebuffers; \
											extern PFNGLBINDFRAMEBUFFERPROC			glBindFramebuffer; \
											extern PFNGLFRAMEBUFFERTEXTURE2DPROC	glFramebufferTexture2D; \
											extern PFNGLFRAMEBUFFERRENDERBUFFERPROC	glFramebufferRenderbuffer; \
											extern PFNGLDRAWBUFFERSPROC				glDrawBuffers; \
											extern PFNGLDELETERENDERBUFFERSPROC		glDeleteRenderbuffers; \
											extern PFNGLDELETEFRAMEBUFFERSPROC		glDeleteFramebuffers;

#endif

// eof
